/**
 * 创建颜色调色板变量
 * @returns {App.Theme.ThemePaletteColor} 返回颜色调色板变量对象
 */
function createColorPaletteVars() {
	// 定义颜色键数组
	const colors: App.Theme.ThemeColorKey[] = ['primary', 'info', 'success', 'warning', 'error'];
	// 定义颜色调色板数字数组
	const colorPaletteNumbers: App.Theme.ColorPaletteNumber[] = [
		50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950
	];

	// 初始化颜色调色板变量对象
	const colorPaletteVar = {} as App.Theme.ThemePaletteColor;

	// 遍历颜色键数组
	colors.forEach(color => {
		// 设置基本颜色变量
		colorPaletteVar[color] = `rgb(var(--${color}-color))`;
		// 遍历颜色调色板数字数组
		colorPaletteNumbers.forEach(number => {
			// 设置调色板颜色变量
			colorPaletteVar[`${color}-${number}`] = `rgb(var(--${color}-${number}-color))`;
		});
	});

	return colorPaletteVar;
}

// 创建颜色调色板变量
const colorPaletteVars = createColorPaletteVars();

const publicColor = {
	'gray-50': '#f9f9f9',
	'gray-100': '#f2f3f5',
	'gray-200': '#e5e6eb',
	'gray-300': '#c9cdd4',
	'gray-400': '#a9aeb8',
	'gray-500': '#86909c',
	'gray-600': '#6b7785',
	'gray-700': '#4e5969',
	'gray-800': '#272e3b',
	'gray-900': '#1d2129'
};

/**
 * 主题变量
 * 包含盒阴影和颜色设置
 */

export const themeVars: App.Theme.ThemeTokenCSSVars = {
	boxShadow: {
		header: 'var(--header-box-shadow)',
		sider: 'var(--sider-box-shadow)',
		tab: 'var(--tab-box-shadow)'
	},
	colors: {
		...colorPaletteVars,
		...publicColor,
		'base-text': 'rgb(var(--base-text-color))',
		container: 'rgb(var(--container-bg-color))',
		inverted: 'rgb(var(--inverted-bg-color))',
		layout: 'rgb(var(--layout-bg-color))',
		nprogress: 'rgb(var(--nprogress-color))'
	}
};
